With the recent diversification in digital motion picture formats, such as DVD-video or digital TV broadcasting, the need for high-speed sampling-rate-change algorithm is growing. For example, video with 16:9 aspect ratio must be vertically squeezed to fit into conventional 4:3 display. Also, high-resolution signals such as DV (Digital Video), digital broadcast, or others often need to be scaled down before stored in storage such as HDD (Hard Disk Drive) or various rewritable DVD (Digital Versatile Disk). In addition, recent progresses in human-interfaces of players or displays have provoked the need for scaling down and up of motion pictures in many applications. Since, those applications are directly related to consumers, the method which realizes the scaling must be simple and relatively low cost to implement. These applications also require real time processing at video (or audio) rates, therefore the algorithm must be as fast as possible.
Some of the major methods used for sampling rate conversion are simple down-sampling, 0-th holding, interpolation, and oversampling. However, simple down sampling (removing of some portion of the input signals) can only be used for scaling down and 0-th holding (replicating parts of the input signals) only for scaling up. When the scaling ratio is not integral, 0-th holding and decimation must be sequentially applied. In both of these cases, the resulting signal must be filtered with a high quality low-pass filter to remove aliasing. The resultant quality is, to a large extent, dependent on the quality of the low pass filters.
Linear interpolation is an alternate method with a relatively high quality output, and fairly simple implementation. Although linear interpolation is much simpler than other interpolation methods, the conventional algorithms still lack either computational speed or flexibility.
In the linear interpolation method, the output pixel is produced using the intensities of the nearest two input pixels. FIG. 1 shows a case where a row of pixels is scaled to m/n size. Here, the first output pixel is assumed to be at the same point as the first input pixel. The spacing between two adjacent output-pixels is m/n of that of input pixels.
The conventional algorithm for linear interpolation consists of the following steps:                1. Determine the coordinates of an output pixel;        2. Find the two nearest input pixels 101 and 102;        3. Determine the distance 104 and 105 between the output pixel and the input pixels found in step 2; and        4. Determine the intensity of the output pixel by interpolation.        
A division is required in step 2 and 3, resulting in an implementation that tends to be large and slow.
Another way to accomplish sample rate conversion with arbitrary ratios is the interpolation/decimation method shown in FIG. 2. While this will result in very good output quality, it is complex to implement, and is very computationally intensive.
In the high speed interpolation/decimation model, illustrated in FIG. 2, the sampled data input signal 201 is interpolated at some ratio (IRATIO) by inserting IRATIO-1 zero valued samples between each of the original input signal samples as shown by 202. The frequency domain characteristics of the input signal are unaltered by this operation, except that the zero-padded sequence is considered to be sampled at a frequency which is the product of original sampling frequency multiplied by IRATIO.
The zero-padded values are fed into a digital FIR low-pass filter to smooth or integrate the sequence, and limit the bandwidth of the filter output. The interpolated output signal shown by 203 has been quantized to a much finer time scale than the original sequence. The interpolated sequence is then passed to a zero-order hold functional block (physically implemented as a register) resulting in the output shown by 204 and then asynchronously resampled at the output sample frequency, resulting in the converted output shown by 205. This resampling can be thought of as a decimation operation since only a very few samples out of the great many interpolated samples are retained. The output values represent the “nearest” values, in a temporal sense, produced by the inter-polation operation. There is always some error in the output sample amplitude. However, this error can be made arbitrarily small by using a very large interpolation ratio. While this approach gives excellent results, the computational requirements tend to limit it to audio applications with today's technology.